home *** CD-ROM | disk | FTP | other *** search
- rem **************************************************************************
- rem * *
- rem * This script reads a directory from the operator, verifies it and *
- rem * returns a message. It demonstrates GOSUB, window operations, *
- rem * READ_STRING, VERIFY_PATH, IF and GOTO. *
- rem * *
- rem * Compile by running PINST.EXE *
- rem * *
- rem **************************************************************************
-
- rem **************************************************************************
- rem * *
- rem * Declare variables *
- rem * *
- rem **************************************************************************
-
- intvar key
- intvar destwin
- intvar errwin
- intvar tmp
- strvar destdir
- strvar errstr
-
- rem **************************************************************************
- rem * *
- rem * Define windows *
- rem * *
- rem **************************************************************************
-
- errwin = define_win 62 5 9 10 2 yes ' ' white red ltwhite black
- win_puts errwin 1 4 "[ Hit any key ]"
-
- destwin = define_win 54 5 13 7 1 yes ' ' white blue ltbrown blue
- win_puts destwin 2 2 "Directory: "
-
- destdir = "C:\PINST" Initial directory
-
- show_win destwin Show read dest window
-
- rem ********************** Get pathname ***********************************
-
- label read_dest
-
- tmp = read_string destwin 13 2 38 ltwhite black yes destdir Read path
- if tmp == 0 goto done_install Aborted ?
-
- rem ********************** Verify path ************************************
-
- key = verify_path destdir Verify path
-
- rem ********************** Critical error *********************************
-
- if key <> 4 goto not_crit Critical ?
- errstr = " Critical error"
- gosub show_error Show error
- goto read_dest
-
- rem ********************** Is path a file ? *******************************
-
- label not_crit
- if key <> 3 goto notfile Is a file ?
- errstr = " That is a file"
- gosub show_error Show error
- goto read_dest
-
- rem ************************** Bad disk ***********************************
-
- label notfile
- if key <> 2 goto not_disk Bad disk ?
- errstr = " Bad directory"
- gosub show_error Show error
- goto read_dest
-
- rem *************************** Bad dir ***********************************
-
- label not_disk
- if key <> 1 goto good_dir Bad dir ?
- errstr = " Bad disk"
- gosub show_error Show error
- goto read_dest
-
- rem *************************** Good dir **********************************
-
- label good_dir End of installation
- errstr = " Good directory"
- gosub show_error Show error
-
- goto done_install
-
- rem **************************************************************************
- rem * *
- rem * Show error window *
- rem * *
- rem **************************************************************************
-
- label show_error
- win_puts errwin 1 2 " "
- win_puts errwin 1 2 errstr
- show_win errwin
- leftmouse
- hide_win errwin
- return
-
- rem ***************************** Exit **********************************
-
- label done_install
- hide_win destwin
- exit 0 Exit
-
-